// // 云函数入口文件
// const cloud = require('wx-server-sdk')

// cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境

// // 云函数入口函数
// exports.main = async (event, context) => {
//   const wxContext = cloud.getWXContext()

//   return {
//     event,
//     openid: wxContext.OPENID,
//     appid: wxContext.APPID,
//     unionid: wxContext.UNIONID,
//   }
// }
const cloud = require('wx-server-sdk');
cloud.init();

exports.main = async (event, context) => {
  const { recordId } = event;
  const db = cloud.database();

  try {
    const record = await db.collection('records').doc(recordId).get();
    if (record.data.status === 'pending') {
      return { success: false, message: '该记录尚未处理，无需撤回' };
    }

    // 恢复库存
    for (const item of record.data.items) {
      const originalQuantity = record.data.originalStocks[item.materialNumber];
      await db.collection('items').where({ materialNumber: item.materialNumber }).update({
        data: { quantity: originalQuantity },
      });
    }

    // 更新记录状态为待处理
    await db.collection('records').doc(recordId).update({
      data: {
        status: 'pending',
        approver: '', // 清空审批人信息
        approvalDate: null, // 清空审批时间
      },
    });

    return { success: true, message: '撤回成功!' };
  } catch (err) {
    console.error(err);
    return { success: false, message: '操作失败，请稍后重试' };
  }
};